package com.mycompany.share.data;

import com.mycompany.share.entity.ShareEntity;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class ShareData {

    public static ArrayList<ShareEntity> findAllLinks() {
        //создаем массив с елементами, возращаемыми после запроса
        ArrayList<ShareEntity> share = new ArrayList<ShareEntity>();
        //параметры подкллючения
        String userDB = "root";
        String passwordDB = "root";
        String url = "jdbc:derby://localhost:1527/ShareServiceDB";
        String driver = "org.apache.derby.jdbc.ClientDriver";

        try {
            //регистрируем райвер
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        Connection c = null;
        try {
            //установка соединения
            c = DriverManager.getConnection(url, userDB, passwordDB);
            Statement st = c.createStatement();
            //готовим запрос
            ResultSet rs = st.executeQuery("select * from ROOT.SHARE_DATA");
            //пока rs = true устанавливаем данные из таблици в нашу сущность
            while (rs.next()) {
                ShareEntity shareentity = new ShareEntity();
                shareentity.setId(rs.getLong("id"));
                shareentity.setData(rs.getString("data"));
                share.add(shareentity);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (c != null) {
                    c.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
        return share;
    }

    public static ArrayList<ShareEntity> findLinkById(long id) {
        //создаем массив с елементами, возращаемыми после запроса
        ArrayList<ShareEntity> share = new ArrayList<ShareEntity>();
        //параметры подкллючения
        String userDB = "root";
        String passwordDB = "root";
        String url = "jdbc:derby://localhost:1527/ShareServiceDB";
        String driver = "org.apache.derby.jdbc.ClientDriver";

        try {
            //регистрируем райвер
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        Connection c = null;
        try {
            //установка соединения
            c = DriverManager.getConnection(url, userDB, passwordDB);
            Statement st = c.createStatement();
            //готовим запрос
            ResultSet rs = st.executeQuery("select * from ROOT.SHARE_DATA where id = " + id);
            //пока rs = true устанавливаем данные из таблици в нашу сущность
            while (rs.next()) {
                ShareEntity shareentity = new ShareEntity();
                shareentity.setId(rs.getLong("id"));
                shareentity.setData(rs.getString("data"));
                share.add(shareentity);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (c != null) {
                    c.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
        return share;
    }

    public void updateLinkById(ShareEntity entity) {
        //ArrayList<ShareEntity> entity = new ArrayList<ShareEntity>();

        //параметры подкллючения
        String userDB = "root";
        String passwordDB = "root";
        String url = "jdbc:derby://localhost:1527/ShareServiceDB";
        String driver = "org.apache.derby.jdbc.ClientDriver";

        try {
            //регистрируем райвер
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        Connection c = null;
        try {
            //установка соединения
            c = DriverManager.getConnection(url, userDB, passwordDB);
            Statement st = c.createStatement();
            //готовим запрос
            st.executeUpdate("update ROOT.SHARE_DATA set data= '" + entity.getData() + "' where id = " + entity.getId());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (c != null) {
                    c.close();
                }
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}
